var dateTime={
	DOM:$("#yuyue"),
	date:new Date(),	//当天日期
	today:null,	//当天时间戳
	addDay:0,	//当天向后推5*N天的时间戳
	dayList:$(".J_dayList"),
	dataList:$(".dataList"),
	title:$("#yuyue > h4"),
	calendar:null,
	MAX:4,	//同一时间段最高容纳预约数
	currentTime:"",	//当前所选区间class名称
	init:function(){
		_t=this;

		_t.today=new Date(_t.date.getFullYear()+"/"+(_t.date.getMonth()+1)+"/"+_t.date.getDate()).getTime()/1000;

		//后翻
		_t.DOM.find(".J_next").tap(function(){
			_t.addDay+=3600*24*5;
			_t.printToday();
		})

		//选择日期
		_t.dayList.tap(function(e){
			if(e.target.tagName==="EM"){
				var element=$(e.target)
					index=element.index()+1;
				element.addClass("current").siblings("em").removeClass("current");
				if(_t.currentTime!=""){
					_t.dataList.find("em[data-class='"+_t.currentTime.replace(/\d{1}/,index)+"']").click();
				}
			}
		})

		//选择时间区间
		_t.DOM.find(".dataList").click(function(e){
			var element=$(e.target);
			if(e.target.tagName=="EM"&&!element.hasClass("max")){
				var	timeArr={"1":"09:00-11:00","2":"11:00-13:00","3":"13:00-15:00","4":"15:00-17:00","5":"17:00-19:00","6":"19:00-21:00",};
					className=element.attr("data-class"),
					tempArr=className.split("_"),
					dayIndex=tempArr[0], 	//日期索引
					timeIndex=tempArr[1];	//时间区间索引

				if(element.hasClass("my")){
					//取消选中
					_t.dayList.find("em").eq(dayIndex-1).removeClass("current");
					element.removeClass("my").html(element.hasClass("mang")?"忙":"");
					_t.currentTime="";
					_t.title.find("em").html("");
				}else{


					//选中
					var em=_t.dayList.find("em"),
						day=em.eq(dayIndex-1).attr("data-t"),
						oldEm=_t.DOM.find("em[data-class='"+_t.currentTime+"']"),	//被选中项
						date=new Date(day*1000);

					date=(date.getMonth()+1)+"月"+date.getDate()+"日 "+timeArr[timeIndex];

					_t.title.find("em").html(date);

					em.removeClass("current").eq(dayIndex-1).addClass("current");
					oldEm.removeClass("my").html(oldEm.hasClass("mang")?"忙":"");

					_t.currentTime=className;
					element.addClass("my").html("我要预约");
				}
			}
		})

		//恢复初始化
		$("#J_today").tap(function(){
			_t.addDay=0;
			_t.printToday();
		})

		//输出可选日期
		_t.printToday();
		//输出当天日期	
		$("#J_today").html("今天<br />"+(_t.date.getMonth()+1)+"/"+_t.date.getDate());


		//点击日历
		$("#J_calendar").tap(function(e){
			if(_t.calendar==null){
				_t.calendar=new actCalendar({
                    "eventDay":_t.actList,
                    "box":"#calendar .calendar",
                    "minDate":"%y-%m-{%d+1}",
                    "chooseYear":false
                });
			}else{

			}
			$("#calendar").show();
		})


		$("#calendar > .bg").tap(function(){
			$("#calendar").hide();
		})
	},

	printToday:function(){
		var arr={1:"周一",2:"周二",3:"周三",4:"周四",5:"周五",6:"周六",0:"周日"},
			html="",
			time=[],	//当前展示日期列表
			day=null,
			i=1;



		for(;i<6;i++){
			time[i-1]=this.today+3600*24*i+this.addDay;
			day=new Date(time[i-1]*1000);
			html+="<em data-t=\""+time[i-1]+"\">"+arr[day.getDay()]+"<br />"+(day.getMonth()+1)+"/"+day.getDate()+"</em>";
		}
		$(".J_dayList").html(html);
		this.getYuYueDate(time);
	},

	//输出全局预约数据
	getYuYueDate:function(time){
		var _t=this;
		time=time.join(",");
		$("#loading").show();
		$.ajax({
			type:"post",
			dataType:"json",
			url:"/JsApi/yuyue/",
			data:{"days":time},
			success:function(res){

				if(res.status==1){
					_t.printYuYueDate(res.data);
					$("#loading").hide();
				}else{

				}
			}
		})
		
	},
	printYuYueDate:function(data){
		var _t=this,
			key,
			count=0,	//预约数
			txt="",		//显示文字
			className="",	
			i=1,
			j=1;
		for(key in data){
			for(;j<7;j++){
				count=data[key][j];
				if(count==_t.MAX){
					className="max";
					txt="满";
				}else if(count==3){
					txt="忙";
					className="mang";
				}else{
					txt="";
					className="";
				}
				_t.DOM.find("em[data-class='"+i+"_"+j+"']").attr("class",className).html(txt);
			}
			j=1;
			i++;
		}
	},

	//日历选日期
	actList:function(element){
		element=$(element);
		var date=element.attr("data-date");
			s=new Date(date).getTime()/1000;	//所选时间时间戳

		_t.addDay=s-_t.today-3600*24;
		_t.printToday();

		$("#calendar").hide();
    }
}
dateTime.init();